package com.system.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.common.base.persistence.BaseMapper;
import com.common.base.persistence.MyBatisRepository;
import com.system.vo.SysRoleVO;

@MyBatisRepository
public interface SysRoleMapper extends BaseMapper<SysRoleVO>{
	
	 public List<SysRoleVO> getAllRole(SysRoleVO vo);//获取所有的角色按条件
	 
     public List <String>findPermissions(@Param("roleId") String roleId);//通脱roleID查找menuID
     
	 public String findRoleNameById(@Param("roleId") String roleId);//通过角色ID查找对应的角色标志
	 
	 public SysRoleVO findRoleById(@Param("roleId") String roleId);//通过角色ID查找对应的角色标志
	 
     public void deleteRoles(List<String> roleIds) throws Exception;//根据角色ID删除角色
     
     public void deleteRolesAndMenus(List<String> roleIds) throws Exception;//通过角色ID删除与之关联的角色和资源中间表记录
     
     public void deleteRolesAndStaffs(List<String> roleIds)throws Exception;//通过角色ID删除与之关联的用户与 角色的中间表记录
     
	 public void saveRoleandMenu(@Param("roleId") String roleId, @Param("menuId") String menuID) throws Exception;//绑定角色与资源的联系

	 public void save(SysRoleVO role)throws Exception;//保存新增的角色

	 /**
	  * 通过角色ID集合，获取角色组ID集合
	  * @param role_ids
	  * @return
	  */
	 List<String> findRoleGroups(@Param("role_ids") String... role_ids);
	 /**
	  * 通过角色组ID和角色名称模糊查询
	  * @param roleGroupId角色组ID，roleName角色名称（模糊）
	  * @return SysRoleVO对象数组
	  */
	 public List<SysRoleVO> findSysRoleVOsBymap(@Param("groupId") String roleGroupId, @Param("roleName") String roleName);
}
